package EnumLei;

//public enum A
//{
//    X, Y, Z;
//
//    public void test()
//    {
//
//    }
//}

/*IDEA看反汇编代码：
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package EnumLei;

public enum A {
    X,
    Y,
    Z;

    private A() {
    }

    public void test() {
    }
}
*/

/*
cmd看反汇编代码:
D:\MyCode\JavaCode\java-code-\HeiMaJavaXueXi\out\production\JavaXueXiAdvance\EnumLei>javap A.class// 在A.class的文件夹下在地址输入框输入cmd就好，就可以cmd在当前目录下运行
Compiled from "A.java"
public final class EnumLei.A extends java.lang.Enum<EnumLei.A> {
  public static final EnumLei.A X;
  public static final EnumLei.A Y;
  public static final EnumLei.A Z;
  // ！！！！！！！！！！！！！！上面是常量类型！！！！！！！！！！！！！！！！！

  public static EnumLei.A[] values();
  //！！！！！！！！！！！！！！！构造器私有！！！！！！！！！！！！！！！！！！

  public static EnumLei.A valueOf(java.lang.String);
  public void test();
  static {};
}
*/


/*！！！！！！！！！！！！！！！！抽象枚举！！！！！！！！！！！！！！！！！！*/
public enum A
{
    X(){
        @Override
        public void test() {

        }
    }, Y("张三"){
    @Override
    public void test() {

    }
};

    // 不可以删掉，因为X是无参构造
    A() {
    }

    private String name;

    A(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void test();
}